make sure we fail keynav if the only item in the list is already selected.
authorKristian Rietveld <kris@imendio.com>
Tue, 14 Aug 2007 08:11:26 +0000 (08:11 +0000)
committerKristian Rietveld <kristian@src.gnome.org>
Tue, 14 Aug 2007 08:11:26 +0000 (08:11 +0000)
2007-08-14  Kristian Rietveld  <kris@imendio.com>

* gtk/gtktreeview.c (gtk_tree_view_move_cursor_up_down): make
sure we fail keynav if the only item in the list is already selected.
(Fixes #465039, reported by Fernando Herrera).

svn path=/trunk/; revision=18610

ChangeLog
gtk/gtktreeview.c

index cb552cd99d4b3ff1fd1cbd8e6ba8c7b951773e65..d0ca452fc466e0608376279f960039fb7da043f2 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-08-14  Kristian Rietveld  <kris@imendio.com>
+
+       * gtk/gtktreeview.c (gtk_tree_view_move_cursor_up_down): make
+       sure we fail keynav if the only item in the list is already selected.
+       (Fixes #465039, reported by Fernando Herrera).
+
 2007-08-09  Sven Neumann  <sven@gimp.org>
 
        * modules/printbackends/file/gtkprintbackendfile.c: change the
index 65c1a17f3f29e0b07390622da6747d7b34e9c882..3812a37e5b3b9b6a62b882122ae56ba72d75c48c 100644 (file)
@@ -9596,7 +9596,7 @@ gtk_tree_view_move_cursor_up_down (GtkTreeView *tree_view,
 
   /*
    * If the list has only one item and multi-selection is set then select
-   * the row.
+   * the row (if not yet selected).
    */
   if (tree_view->priv->selection->type == GTK_SELECTION_MULTIPLE &&
       new_cursor_node == NULL)
@@ -9608,7 +9608,8 @@ gtk_tree_view_move_cursor_up_down (GtkTreeView *tree_view,
         _gtk_rbtree_prev_full (cursor_tree, cursor_node,
                               &new_cursor_tree, &new_cursor_node);
 
-      if (new_cursor_node == NULL)
+      if (new_cursor_node == NULL
+         && !GTK_RBNODE_FLAG_SET (cursor_node, GTK_RBNODE_IS_SELECTED))
         {
           new_cursor_node = cursor_node;
           new_cursor_tree = cursor_tree;